//引入axios
import axios from "axios";

//引入进度条
import nProgress from "nprogress";
import "nprogress/nprogress.css"


//创建axios实例
const request = axios.create({
    baseURL: process.env.VUE_APP_MOCKAPI,
    timeout: 10000,
})

//添加拦截器
request.interceptors.request.use(
    //请求成功做些什么
    (config) => {
        //发送请求开启进度条
        nProgress.start()

        return config
    },
    //请求失败做些什么
    (error) => {
        //请求失败关闭进度条
        nProgress.done()

        return Promise.reject(error)
    }
)

request.interceptors.response.use(
    //响应成功做些什么
    (response) => {
        //响应成功关闭进度条
        nProgress.done()

        if(response.data.code === 200){
            //请求成功直接返回真实数据
            return response.data.data
        }else{
            //自己封装的错误对象
            return Promise.reject({message: response.data.message})
        }
        
    },
    //响应失败做些什么
    (error) => {
        //响应失败关闭进度条
        nProgress.done()

        return Promise.reject(error)
    }
)

export default request